package org.domain.sisteste.entity;

// Generated 12/11/2013 11:37:44 by Hibernate Tools 3.4.0.CR1

import java.math.BigDecimal;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.hibernate.validator.Length;
import org.hibernate.validator.NotNull;

/**
 * TbSoftware generated by hbm2java
 */
@Entity
@Table(name = "tb_software")
public class Software implements java.io.Serializable {

	private Integer idSoftware;
	private TratamentoInterrupcao ttTratamentointerrupcao;
	private TipoFuncionamento ttFuncionamento;
	private TipoIntegracaoPrograma ttIntegracaoprograma;
	private TipoFormaImpressao ttFormaimpressao;
	private Aplicacao ttAplicacao;
	private ClienteCelulaTeste tbClientedacelulateste;
	private Desenvolvimento ttDesenvolvimento;
	private String noComercial;
	private String noLinguagem;
	private Date dtCriacao;
	private BigDecimal nrVersao;
	private String noArquivoExecutavel;
	private String noSistemaOperacional;
	private String noGerenciadorDeBd;
	private String stSoftware;
	private Set<Documentacao> tbDocumentacaos = new HashSet<Documentacao>(0);
	private Set<Teste> taTestes = new HashSet<Teste>(0);
	private Set<ItemRequisito> tbItemrequisitos = new HashSet<ItemRequisito>(
			0);

	public Software() {
	}

	public Software(TratamentoInterrupcao ttTratamentointerrupcao,
			TipoFuncionamento ttFuncionamento,
			TipoIntegracaoPrograma ttIntegracaoprograma,
			TipoFormaImpressao ttFormaimpressao, Aplicacao ttAplicacao,
			ClienteCelulaTeste tbClientedacelulateste,
			Desenvolvimento ttDesenvolvimento, String noComercial,
			String noLinguagem, Date dtCriacao, BigDecimal nrVersao,
			String noArquivoExecutavel, String noSistemaOperacional,
			String noGerenciadorDeBd) {
		this.ttTratamentointerrupcao = ttTratamentointerrupcao;
		this.ttFuncionamento = ttFuncionamento;
		this.ttIntegracaoprograma = ttIntegracaoprograma;
		this.ttFormaimpressao = ttFormaimpressao;
		this.ttAplicacao = ttAplicacao;
		this.tbClientedacelulateste = tbClientedacelulateste;
		this.ttDesenvolvimento = ttDesenvolvimento;
		this.noComercial = noComercial;
		this.noLinguagem = noLinguagem;
		this.dtCriacao = dtCriacao;
		this.nrVersao = nrVersao;
		this.noArquivoExecutavel = noArquivoExecutavel;
		this.noSistemaOperacional = noSistemaOperacional;
		this.noGerenciadorDeBd = noGerenciadorDeBd;
	}

	public Software(TratamentoInterrupcao ttTratamentointerrupcao,
			TipoFuncionamento ttFuncionamento,
			TipoIntegracaoPrograma ttIntegracaoprograma,
			TipoFormaImpressao ttFormaimpressao, Aplicacao ttAplicacao,
			ClienteCelulaTeste tbClientedacelulateste,
			Desenvolvimento ttDesenvolvimento, String noComercial,
			String noLinguagem, Date dtCriacao, BigDecimal nrVersao,
			String noArquivoExecutavel, String noSistemaOperacional,
			String noGerenciadorDeBd, String stSoftware,
			Set<Documentacao> tbDocumentacaos, Set<Teste> taTestes,
			Set<ItemRequisito> tbItemrequisitos) {
		this.ttTratamentointerrupcao = ttTratamentointerrupcao;
		this.ttFuncionamento = ttFuncionamento;
		this.ttIntegracaoprograma = ttIntegracaoprograma;
		this.ttFormaimpressao = ttFormaimpressao;
		this.ttAplicacao = ttAplicacao;
		this.tbClientedacelulateste = tbClientedacelulateste;
		this.ttDesenvolvimento = ttDesenvolvimento;
		this.noComercial = noComercial;
		this.noLinguagem = noLinguagem;
		this.dtCriacao = dtCriacao;
		this.nrVersao = nrVersao;
		this.noArquivoExecutavel = noArquivoExecutavel;
		this.noSistemaOperacional = noSistemaOperacional;
		this.noGerenciadorDeBd = noGerenciadorDeBd;
		this.stSoftware = stSoftware;
		this.tbDocumentacaos = tbDocumentacaos;
		this.taTestes = taTestes;
		this.tbItemrequisitos = tbItemrequisitos;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "ID_Software", unique = true, nullable = false)
	public Integer getIdSoftware() {
		return this.idSoftware;
	}

	public void setIdSoftware(Integer idSoftware) {
		this.idSoftware = idSoftware;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "CD_TratamentoInterrupcao", nullable = false)
	@NotNull
	public TratamentoInterrupcao getTtTratamentointerrupcao() {
		return this.ttTratamentointerrupcao;
	}

	public void setTtTratamentointerrupcao(
			TratamentoInterrupcao ttTratamentointerrupcao) {
		this.ttTratamentointerrupcao = ttTratamentointerrupcao;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "CD_Funcionamento", nullable = false)
	@NotNull
	public TipoFuncionamento getTtFuncionamento() {
		return this.ttFuncionamento;
	}

	public void setTtFuncionamento(TipoFuncionamento ttFuncionamento) {
		this.ttFuncionamento = ttFuncionamento;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "CD_IntegracaoPrograma", nullable = false)
	@NotNull
	public TipoIntegracaoPrograma getTtIntegracaoprograma() {
		return this.ttIntegracaoprograma;
	}

	public void setTtIntegracaoprograma(
			TipoIntegracaoPrograma ttIntegracaoprograma) {
		this.ttIntegracaoprograma = ttIntegracaoprograma;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "CD_FormaImpressao", nullable = false)
	@NotNull
	public TipoFormaImpressao getTtFormaimpressao() {
		return this.ttFormaimpressao;
	}

	public void setTtFormaimpressao(TipoFormaImpressao ttFormaimpressao) {
		this.ttFormaimpressao = ttFormaimpressao;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "CD_Aplicacao", nullable = false)
	@NotNull
	public Aplicacao getTtAplicacao() {
		return this.ttAplicacao;
	}

	public void setTtAplicacao(Aplicacao ttAplicacao) {
		this.ttAplicacao = ttAplicacao;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "CD_ClienteDaCelulaTeste", nullable = false)
	@NotNull
	public ClienteCelulaTeste getTbClientedacelulateste() {
		return this.tbClientedacelulateste;
	}

	public void setTbClientedacelulateste(
			ClienteCelulaTeste tbClientedacelulateste) {
		this.tbClientedacelulateste = tbClientedacelulateste;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "CD_Desenvolvimento", nullable = false)
	@NotNull
	public Desenvolvimento getTtDesenvolvimento() {
		return this.ttDesenvolvimento;
	}

	public void setTtDesenvolvimento(Desenvolvimento ttDesenvolvimento) {
		this.ttDesenvolvimento = ttDesenvolvimento;
	}

	@Column(name = "NO_Comercial", nullable = false, length = 20)
	@NotNull
	@Length(max = 20)
	public String getNoComercial() {
		return this.noComercial;
	}

	public void setNoComercial(String noComercial) {
		this.noComercial = noComercial;
	}

	@Column(name = "NO_Linguagem", nullable = false, length = 20)
	@NotNull
	@Length(max = 20)
	public String getNoLinguagem() {
		return this.noLinguagem;
	}

	public void setNoLinguagem(String noLinguagem) {
		this.noLinguagem = noLinguagem;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "DT_Criacao", nullable = false, length = 10)
	@NotNull
	public Date getDtCriacao() {
		return this.dtCriacao;
	}

	public void setDtCriacao(Date dtCriacao) {
		this.dtCriacao = dtCriacao;
	}

	@Column(name = "NR_Versao", nullable = false, precision = 3)
	@NotNull
	public BigDecimal getNrVersao() {
		return this.nrVersao;
	}

	public void setNrVersao(BigDecimal nrVersao) {
		this.nrVersao = nrVersao;
	}

	@Column(name = "NO_ArquivoExecutavel", nullable = false, length = 25)
	@NotNull
	@Length(max = 25)
	public String getNoArquivoExecutavel() {
		return this.noArquivoExecutavel;
	}

	public void setNoArquivoExecutavel(String noArquivoExecutavel) {
		this.noArquivoExecutavel = noArquivoExecutavel;
	}

	@Column(name = "NO_SistemaOperacional", nullable = false, length = 20)
	@NotNull
	@Length(max = 20)
	public String getNoSistemaOperacional() {
		return this.noSistemaOperacional;
	}

	public void setNoSistemaOperacional(String noSistemaOperacional) {
		this.noSistemaOperacional = noSistemaOperacional;
	}

	@Column(name = "NO_GerenciadorDeBD", nullable = false, length = 20)
	@NotNull
	@Length(max = 20)
	public String getNoGerenciadorDeBd() {
		return this.noGerenciadorDeBd;
	}

	public void setNoGerenciadorDeBd(String noGerenciadorDeBd) {
		this.noGerenciadorDeBd = noGerenciadorDeBd;
	}

	@Column(name = "ST_Software", length = 12)
	@Length(max = 12)
	public String getStSoftware() {
		return this.stSoftware;
	}

	public void setStSoftware(String stSoftware) {
		this.stSoftware = stSoftware;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "tbSoftware")
	public Set<Documentacao> getTbDocumentacaos() {
		return this.tbDocumentacaos;
	}

	public void setTbDocumentacaos(Set<Documentacao> tbDocumentacaos) {
		this.tbDocumentacaos = tbDocumentacaos;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "tbSoftware")
	public Set<Teste> getTaTestes() {
		return this.taTestes;
	}

	public void setTaTestes(Set<Teste> taTestes) {
		this.taTestes = taTestes;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "tbSoftware")
	public Set<ItemRequisito> getTbItemrequisitos() {
		return this.tbItemrequisitos;
	}

	public void setTbItemrequisitos(Set<ItemRequisito> tbItemrequisitos) {
		this.tbItemrequisitos = tbItemrequisitos;
	}

}
